/*
 *输入一个数组和k，输出两个数相减为k的个数
 *因为输出个数，所以存储数据不能重复，即用map的key存储数组值，values代表这个值的个数
 */
package Array;

import java.util.*;

public class K_diff_Pairs_in_an_Array {
	public int findPairs(int[] nums, int k) {
	    Map<Integer,Integer> map = new HashMap<Integer,Integer>();
	    int j=1;
	    int count=0;
	    if(nums==null||nums.length==0||k<0) {
	        return 0;
	    } else {
	        for(int i=0;i<nums.length;i++) {
	           if(!map.containsKey(nums[i])) {
	               map.put(nums[i],j);
	           } else {
	               map.put(nums[i],j+1);
	           }
	        }
	    }
	    for(Integer Key : map.keySet()) {
	        if(k==0 && map.get(Key)>1) {
	           count++;
	        }
	        if(k>0 && map.containsKey(Key+k)) {
	            count++;
	        }
	    }
	    return count;
	    
	    
	}
}
